1.5. Creating a Web Application that can be deployed on Heroku 创建能部署在Heroku上面的Web项目

    在你的项目里面随意调整pom.xml内的groupId,包号和版本号就可以成为一个新的项目。

    此时,已经创建, 符合Maven的项目结构:

    • 标准的管理配置文件 :pom.xml
    • 原文件路径 :src/main/java
    • 资源文件路径 :src/main/resources
    • web应用文件 :src/main/webapp
    • 原文件测试(基于JerseyTest) :src/test/java
    • Heroku系统属性 (OpenJDK版本) :system.properties

    该项目包含一个JAX-RS资源类 MyResouce,和一个资源的方法会返回的简单文本。确保资源的正确测试,MyResourceTest 是一个端到端的测试案例(测试是基于,详见 Chapter 24, Jersey Test Framework)。类似simple-service-webapp项目,在 src/main/webapp/WEB-INF 下,它包含了标准的JavaEE Web 应用的 web.xml 部署描述符,目标是部署在一个 Servlet 容器(本例将运行在 Heroku 的 Jetty 容器)。

    项目打包成WAR,执行:

    1. mvn clean package

    接下来你可以做:

    • 改变项目
    • 打包成 WAR 部署到任意 Servlet 容器
    • 或者部署到 Heroku(参见下文1.5.1)

    提示: 可以执行mvn clean package jetty:run项目将会部署到内嵌的 Jetty 容器运行 ,或者执行java -cp target/classes:target/dependency/* com.example.heroku.Main(那是Jetty 在 Heroku 的启动方式)

    首先是要注册的账户,这里不展开讲。可以参考Getting Started with Java on Heroku。当你的Heroku环境准备完毕后,接着看下面的步骤:

    首先给你的项目创建一个 Git 仓库:

    1. $ git init
    2. Initialized empty Git repository in /.../simple-heroku-webapp/.git/

    注意: 默认创建的实例名称是一串随机的字符串类似与 tranquil-basin-4744,而不一定是你项目名simple-heroku-webapp。(译者注:当然你可以根据用户自定义实例名称,具体的要参考)

    添加并提交到你的 Git 仓库:

    1. $ git add src/ pom.xml Procfile system.properties
    2. [master (root-commit) e2b58e3] initial commit
    3. 7 files changed, 221 insertions(+)
    4. create mode 100644 pom.xml
    5. create mode 100644 src/main/java/com/example/MyResource.java
    6. create mode 100644 src/main/java/com/example/heroku/Main.java
    7. create mode 100644 src/main/webapp/WEB-INF/web.xml
    8. create mode 100644 system.properties

    将修改推送到 Heroku:

    现在你可以访问你的应用了。本例子是http://simple-heroku-webapp.herokuapp.com/myresource